package appVeterinaria.negocio;

import java.util.Collection;

import appVeterinaria.dao.DoctoresDAO;
import appVeterinaria.excepcion.DAOExcepcion;
import appVeterinaria.modelo.Doctor;

public class GestionDoctores {

	public Collection<Doctor> buscarPorNombreDoctor(String nombres)
			throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.buscarPorNombreDoctor(nombres);
	}
	public Collection<Doctor> buscarPorApellidoDoctor(String nombre)
			throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.buscarPorApellidoDoctor(nombre);
	}
	
	public Collection<Doctor> buscarPorCodigo(int idDoctor)
			throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.buscarPorCodigo(idDoctor);
	}

	public Doctor insertar(String nombre, String apellidos, String email, int telefono, String idUsuario, String password, boolean admin)
			throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();

		Doctor vo = new Doctor();
		vo.setNombres(nombre);
		vo.setApellidos(apellidos);
		vo.setEmail(email);		
		vo.setTlfMovil(telefono);	
		vo.setUsuario(idUsuario);
		vo.setPassword(password);	
		vo.setAdmin(admin);	
		int total = dao.contar(idUsuario);
		if (total == 0) {
			return dao.insertar(vo);
		}
		else
			throw new DAOExcepcion("Cuenta de usuario existente");

	}

	public Doctor obtener(int idDoctor) throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.obtener(idDoctor);
	}

	public void eliminar(int idDoctor) throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		dao.eliminar(idDoctor);
	}

	public Doctor actualizar(int idDoctor, String nombre, String apellidos, String email, int telefono,String idUsuario, String password, boolean admin ) throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();

		Doctor vo = new Doctor();
		vo.setIdPersona(idDoctor);
		vo.setNombres(nombre);
		vo.setApellidos(apellidos);
		vo.setEmail(email);
		vo.setTlfMovil(telefono);	
		vo.setUsuario(idUsuario);
		vo.setPassword(password);
		vo.setAdmin(admin);
		return dao.actualizar(vo);
	}

	public Collection<Doctor> listar() throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.listar();
	}

	public Doctor contar(int idUsuario) throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.obtener(idUsuario);
	}
	
	public Doctor validarUsuario(String idUsuario, String password)
			throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.validarUsuario(idUsuario, password);
	}
	
	public Collection<Doctor> listarDoctorPorAdmin(boolean admin) throws DAOExcepcion {
		DoctoresDAO dao = new DoctoresDAO();
		return dao.listarDoctorPorAdmin(admin);	
				}
	
}